python packageでのz-score¶
動機とまとめ¶
- pandasでzsore method見ないなと調べていた
- あるけどAttributeErrorになった
- numpy/scipyから探してみたらあった
- series自力計算との違いを確かめてみた
- pandasのstdは不偏のほうだった
おまけ¶
途中、scipy.statsが急に使えなくなったので、updateやpyenv rehashして復旧させた
code¶
import pandas as pd
import numpy as np
import scipy as sp
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
# pd.stats.misc.zscore AttributeError
df = pd.DataFrame({"n": range(10)})
df = df.assign(
sp_z=sp.stats.zscore(df["n"]),
ddof_t_z=(df["n"] - df["n"].mean()) / df["n"].std(),
ddof_f_z=(df["n"] - df["n"].mean()) / df["n"].std(ddof=False)
)
# degrees of freedom
# http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.std.html
print(df.min())
print(df.max())
df.plot(subplots=True, figsize=(10, 4), layout=(1, 4))
plt.tight_layout()